home *** CD-ROM | disk | FTP | other *** search
- #ifndef SOCK_STREAM
-
- #include "global.h"
-
- /* IP protocol numbers */
- #define IPPROTO_ICMP 1
- #define IPPROTO_TCP 6
- #define IPPROTO_UDP 17
-
- /* TCP port numbers */
- #define IPPORT_ECHO 7 /* Echo data port */
- #define IPPORT_DISCARD 9 /* Discard data port */
- #define IPPORT_FTPD 20 /* FTP Data port */
- #define IPPORT_FTP 21 /* FTP Control port */
- #define IPPORT_TELNET 23 /* Telnet port */
- #define IPPORT_SMTP 25 /* Mail port */
- #define IPPORT_FINGER 79 /* Finger port */
-
- /* UDP port numbers */
- #define IPPORT_DOMAIN 53
- #define IPPORT_REMOTE 1234 /* Pulled out of the air */
-
- #define AF_INET 0
- #define AF_AX25 1
-
- #define SOCK_STREAM 0
- #define SOCK_DGRAM 1
- #define SOCK_RAW 2
-
- #define EMFILE 1
- #define EBADF 2
- #define EINVAL 3
- #define ESOCKTNOSUPPORT 4
- #define EAFNOSUPPORT 5
- #define EOPNOTSUPP 6
- #define EFAULT 7
- #define ENOTCONN 8
- #define ECONNREFUSED 9
- #define EAFNOSUPP 10
- #define EISCONN 11
- #define EWOULDBLOCK 12
- #define EINTR 13
- #define EADDRINUSE 14
- #define ENOMEM 15
-
- /* Berkeley format socket address structures. These things were rather
- * poorly thought out, but compatibility is important (or so they say).
- * Note that all the sockaddr variants must be of the same size, 16 bytes
- * to be specific. Although attempts have been made to account for alignment
- * requirements (notably in sockaddr_ax), porters should check each
- * structure.
- */
-
- /* Generic socket address structure */
- struct sockaddr {
- short sa_family;
- char sa_data[14];
- };
-
- /* This is a structure for "historical" reasons (whatever they are) */
- struct in_addr {
- unsigned long s_addr;
- };
-
- /* Socket address, DARPA Internet style */
- struct sockaddr_in {
- short sin_family;
- unsigned short sin_port;
- struct in_addr sin_addr;
- char sin_zero[8];
- };
-
- /* AX.25 sockaddr stuff */
- /* Number of chars in callsign field */
- #define ALEN 6
-
- struct ax_addr {
- char call[ALEN];
- char ssid;
- };
- /* Number of chars in interface field. The involved definition takes possible
- * alignment requirements into account, since ax25_addr is of an odd size.
- */
- #define ILEN (sizeof(struct sockaddr) - sizeof(short) - sizeof(struct ax_addr))
-
- /* Socket address, AX.25 style */
- struct sockaddr_ax {
- short sax_family; /* 2 bytes */
- struct ax_addr ax25_addr;
- char iface[ILEN]; /* Interface name */
- };
- #define SOCKSIZE (sizeof(struct sockaddr))
-
- extern int32 Ip_addr;
- #if defined(__STDC__) || defined(__TURBOC__)
- void sockinit(void);
- int32 aton(char *s);
- int32 resolve(char *host);
- int socket(int af,int type,int protocol);
- int bind(int s,char *name,int namelen);
- int listen(int s,int backlog);
- int connect(int s,char *peername,int peernamelen);
- int accept(int s,char *peername,int *peernamelen);
- int recv_mbuf(int s,struct mbuf **bpp,int len,int flags,char *from,int *fromlen);
- int send_mbuf(int s,struct mbuf *bp,int flags,char *to,int tolen);
- int recv(int s,char *buf,int len,int flags);
- int recvfrom(int s,char *buf,int len,int flags,char *from,int *fromlen);
- int send(int s,char *buf,int len,int flags);
- int sendto(int s,char *buf,int len,int flags,char *to,int tolen);
- int getsockname(int s,char *name,int *namelen);
- int getpeername(int s,char *peername,int *peernamelen);
- int socklen(int s,int rtx);
- int sockkick(int s);
- int shutdown(int s,int how);
- int close_s(int s);
- int recvline(int s,char *buf,unsigned len);
- int usprintf(int s,char *fmt,...);
- int recvchar(int s,struct mbuf **bpp);
- char *inet_ntoa(int32 a);
- char *psocket(struct sockaddr *s);
- char *sockerr(int s);
- char *sockstate(int s);
- struct proc *sockowner(int s,struct proc *newowner);
- void freesock(struct proc *pp);
- #else
- void sockinit();
- int32 aton(),resolve();
- int socket(),bind(),listen(),connect(),accept(),recv_mbuf(),send_mbuf();
- int recv(),recvfrom(),send(),sendto(),getsockname(),getpeername(),socklen();
- int sockkick(),shutdown(),close_s(),recvline(),usprintf(),recvchar();
- char *inet_ntoa(),*psocket(),*sockerr(),*sockstate();
- struct proc *sockowner();
- void freesock();
- #endif
-
- #endif /* SOCK_STREAM */
-